File systems almost universally rely on directory structures to track and organize stored files. The directory structure is composed of at least one root directory and various directory paths stemming from the root directory to identify the location of files on the file system. Conceptually, a particular directory path points to a particular directory that contains zero or more files and subdirectories.
Each read and write operation to the file system involves traversal of the directory structure and some finite amount of time to complete. New software techniques and hardware technology have improved the time needed to complete such operations. For instance, solid state disks are able to complete random read or write operations many times faster than a mechanical disk.
Nevertheless, further improvement and even higher performing file systems are needed for certain storage critical systems. One such system heavily reliant on file system performance is a Content Delivery Network (CDN).
A CDN deploys surrogate origin servers, also referred to as caching servers or edge servers, at various points-of-presence (PoPs) that are geographically proximate to large numbers of end users. Each PoP includes multiple caching servers. Each caching server has a finite amount of storage for locally caching content from various content providers. The cached content is then disseminated to the geographically proximate end users more expediently than would otherwise occur if the content was disseminated from a more distant or underpowered origin server of the content provider originating the cached content.
To ensure the relevance of the cached content, the caching servers continually reallocate the storage to retain the most popular content. This reallocation involves continually purging stale content and writing popular or refreshed content to the storage. Accordingly, there is a need for a highly optimized file system that can maintain pace with the amount of reads and writes performed by a caching server. Otherwise, an underperforming file system can create a bottleneck that prevents the caching server from responding to incoming requests in a timely manner.